package com.example.blog.module.component;

import com.example.blog.module.entity.Article;
import org.springframework.data.elasticsearch.annotations.Highlight;
import org.springframework.data.elasticsearch.annotations.HighlightField;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 用于从Elasticsearch中检索和操作数据
 * @author 郑家莽
 */
@Repository
public interface MyElasticsearchRepository extends ElasticsearchRepository<Article, String> {

    @Highlight(fields = {
            @HighlightField(name = "title"),
            @HighlightField(name = "summary"),
            @HighlightField(name = "content"),
    })

    /**
     * 通过 题目 查找文章
     * @param title
     * @return
     */
    List<Article> findByTitle(String title);

    /**
     * 通过 内容 查找文章
     * @param content
     * @return
     */
    List<Article> findByContent(String content);

    /**
     * 通过 题目 和 内容 查找文章
     * @param title
     * @param content
     * @return
     */
    List<Article> findByTitleAndContent(String title, String content);

    /**
     * 通过 题目 和 内容 查找文章
     * @param title
     * @param content
     * @return
     */
    List<Article> findByTitleOrContent(String title, String content);
}

